# 学生管理系统
student_list = []
teach_list = [{"name": "张大力", "password": 123456}, {"name": "王大陆", "password": 234567}]


# 显示菜单
def show_menu():
    print("------菜单--------")
    print("1.增加学生信息")
    print("2.修改学生信息")
    print("3.删除学生信息")
    print("4.展示学生信息")
    print("5.退出系统")
    print("-----------------")
    select = eval(input("请选择操作:\n"))
    return select


# 添加学生信息
def add_student():
    print("------添加学生信息--------")
    student = {}
    name = input("请输入姓名:")
    age = input("请输入年龄:")
    sex = input("请输入性别:")
    mobile = input("请输入电话:")
    student.setdefault("name", name)
    student.setdefault("age", age)
    student.setdefault("sex", sex)
    student.setdefault("mobile", mobile)
    student_list.append(student)
    print("------添加学生信息成功--------")


# 展示学生信息
def show_student():
    if len(student_list) <= 0:
        print("当前没有学生,去添加试试吧")
    else:
        print("学号\t姓名\t年龄\t性别\t电话")
        for index, student in enumerate(student_list):
            print("%s\t%s\t%s\t%s\t%s\t" % (index + 1, student.get("name"),
                                            student.get("age"), student.get("sex"), student.get("mobile")))
    print("---------------------------------")


# 修改学生信息
def update_student():
    print("------修改学生信息--------")
    strict = {1: "name", 2: "age", 3: "sex", 4: "mobile"}
    print("---------当前学生信息-----------")
    show_student()
    if len(student_list) <= 0:
        print("当前没有学生,去添加试试吧")
    else:
        num = eval(input("请选择需要修改学生的序号:"))
        if is_exists_student(num) == -1:
            print("未查询到该学生的信息")
        else:
            print("操作:1.修改姓名\t2.修改年龄\t3.修改性别\t4.修改电话\t")
            opt_flag = eval(input("请输入需要修改信息的序号:"))
            # 当前当前学生
            opt_str = input("输入新的信息:")
            student_list[num - 1][strict[opt_flag]] = opt_str
            print("------修改学生信息成功--------")


# 删除学生
def del_student():
    print("------删除学生信息--------")
    print("---------当前学生信息-----------")
    show_student()
    num = eval(input("请选择删除修改学生的序号:"))
    if is_exists_student(num) == -1:
        print("未查询到该学生的信息")
    else:
        del student_list[num - 1]
    print("------删除学生信息成功--------")


# 查询学生是否存在
def is_exists_student(num):
    for index, val in enumerate(student_list):
        if num == index + 1:
            return 0
    return -1


# 登录方法
def login(name, password):
    # 查询教师信息
    teach = teach_is_exists(name)
    if not teach:
        print("账户不存在,请联系管理员!")
    else:
        if teach.get("password") == int(password):
            return 0
        else:
            print("密码错误,请重新输入!")
    return -1


# 判断账户是否存在
def teach_is_exists(name):
    for teach in teach_list:
        if teach.get("name").__eq__(name):
            return teach
    return None


# 初始化方法 后面操作db就不需要了

def init():
    name = input("请输入账号:")
    password = input("请输入密码:")
    if login(name, password) == 0:
        while True:
            # 显示菜单
            select = show_menu()
            if select == 1:
                add_student()
            elif select == 2:
                update_student()
            elif select == 3:
                del_student()
            elif select == 4:
                show_student()
            elif select == 5:
                print("----------Bye----------")
                return
            else:
                print("输入指令有误请重新输入!")

    else:
        init()


init()
